package bg.code.commons.builder.idea;

import bg.code.commons.builder.project.ToolConfigurationData;
import bg.code.commons.builder.vo.ColumnDescriptor;
import bg.code.commons.builder.vo.TableDescriptor;
import com.intellij.openapi.application.Application;
import com.intellij.openapi.command.CommandProcessor;
import com.intellij.openapi.editor.Document;
import com.intellij.openapi.editor.Editor;
import com.intellij.openapi.project.Project;
import com.intellij.psi.PsiClass;
import com.intellij.psi.PsiFile;

import java.util.List;

/**
 * @author 郑兴泉 956607644@qq.com
 * @data 2020/3/18
 * 描述：
 */
public final class ProjectPluginConfig {

    private ToolConfigurationData configuration;
    private Application applicationManager;
    private CommandProcessor processor;
    private Document document;
    private Project project;
    private Editor editor;
    private PsiFile psiFile;
    private PsiClass mClass;
    // 表
    private TableDescriptor tableDescriptor;
    // 字段
    private List<ColumnDescriptor> javaFields;

    public ProjectPluginConfig(Application applicationManager, CommandProcessor processor, Document document, Project project, Editor editor, PsiFile psiFile, List<ColumnDescriptor> javaFields) {
        this.applicationManager = applicationManager;
        this.processor = processor;
        this.document = document;
        this.project = project;
        this.editor = editor;
        this.psiFile = psiFile;
        this.javaFields = javaFields;
    }

    public List<ColumnDescriptor> getJavaFields() {
        return this.javaFields;
    }

    public void setJavaFields(List<ColumnDescriptor> javaFields) {
        this.javaFields = javaFields;
    }

    public PsiFile getPsiFile() {
        return this.psiFile;
    }

    public void setPsiFile(PsiFile psiFile) {
        this.psiFile = psiFile;
    }

    public Editor getEditor() {
        return this.editor;
    }

    public void setEditor(Editor editor) {
        this.editor = editor;
    }

    public Project getProject() {
        return this.project;
    }

    public void setProject(Project project) {
        this.project = project;
    }

    public Application getApplicationManager() {
        return this.applicationManager;
    }

    public void setApplicationManager(Application applicationManager) {
        this.applicationManager = applicationManager;
    }

    public CommandProcessor getProcessor() {
        return this.processor;
    }

    public void setProcessor(CommandProcessor processor) {
        this.processor = processor;
    }

    public Document getDocument() {
        return this.document;
    }

    public void setDocument(Document document) {
        this.document = document;
    }

    public ToolConfigurationData getConfiguration() {
        return configuration;
    }

    public void setConfiguration(ToolConfigurationData configuration) {
        this.configuration = configuration;
    }

    public PsiClass getmClass() {
        return mClass;
    }

    public void setmClass(PsiClass mClass) {
        this.mClass = mClass;
    }

    public TableDescriptor getTableDescriptor() {
        return tableDescriptor;
    }

    public void setTableDescriptor(TableDescriptor tableDescriptor) {
        this.tableDescriptor = tableDescriptor;
    }
}
